﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Data.SqlClient;

namespace TCCT_CTC_CSDLDangVienV1.DanhMuc
{
    public partial class frmCanBoListFull : frmBase
    {
        public string Action = MyConst.ACTION.Insert;

        /// <summary>
        /// ID của cán bộ hiện tại
        /// </summary>
        public string SelectedKhoa = string.Empty;
        private bool IsFormFind = false;
        /// <summary>
        /// Quyền cho phép 1 đơn vị cấp dưới có thể xem toàn bộ cán bộ ở tất cả các đơn vị.
        /// </summary>
        private bool IsViewAll = false;

        /// <summary>
        /// Đầu mối hiện tại đang được chọn. Mặc định là đầu mối của user đăng nhập.
        /// </summary>
        public string SelectedDauMoiID = "";

        public frmCanBoListFull()
        {
            InitializeComponent();
        }



        private static frmCanBoListFull _instance = null;
        public static frmCanBoListFull Instance
        {
            get
            {
                if (_instance == null || _instance.IsDisposed)
                    _instance = new frmCanBoListFull();
                return _instance;
            }
            set { _instance = value; }
        }

        private static frmCanBoListFull _instanceFind = null;
        public static frmCanBoListFull InstanceFind
        {
            get
            {
                if (_instanceFind == null || _instanceFind.IsDisposed)
                    _instanceFind = new frmCanBoListFull();

                _instanceFind.IsFormFind = true;

                return _instanceFind;
            }
            set { _instanceFind = value; }
        }

        private void frmCanBoListFull_Load(object sender, EventArgs e)
        {
            try
            {
                //Ban đầu sẽ chạy Default cán bộ trong đầu mối user đăng nhập
                if (SelectedDauMoiID == "")
                    SelectedDauMoiID = MyCommon.CurrentUserDauMoiID;

                ApplyUI();

                if (!Permision())
                    return;

                BindDataToControl();


                MySetCurentDauMoi();

                if (SelectedDauMoiID != "1")
                    BindDataToGrid("", null);
                frmCanBoListFull.Instance = this;
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        //Nơi gán thuộc tính giao diện cho các control
        private void ApplyUI()
        {
            if (IsFormFind)
            {
                gCapNhatThongTin.Visible = false;
                menuStrip1.Enabled = false;
            }
            else
            {
                gCapNhatThongTin.Visible = true;
                menuStrip1.Enabled = true;
            }
            UI.Button.ApplyInsert(btnThemMoi);
            UI.Button.ApplyUpdate(btnSuaDoi);
            UI.Button.ApplySave(btnTaiLai);
            UI.Button.ApplyDelete(btnXoaBo);
            UI.Button.ApplyClose(btnThoat);
            UI.Button.ApplyAccept(btnChapNhan);
            UI.Button.ApplyExportExcel(btnXuatExcel);
            UI.Button.ApplyDefault(btnMoRong);
            UI.Button.ApplyDefault(btnChonDonVi);
            UI.Button.ApplyDefault(btnInHoSo);
            UI.Button.ApplyDefault(btnTimKiemNangCao);
            UI.TextBox.ApplyFind(txtTenCanBoFind);
            UI.TextBox.ApplyFind(txtSoHieu_SQFind);

            UI.Grid.ApplyDefault(dgData);

            this.MainGridView.Columns["CreateDate"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["CreateDate"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.ddMMyyyyHHmmss;
            this.MainGridView.Columns["UpdateDate"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["UpdateDate"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.ddMMyyyyHHmmss;

            this.MainGridView.Columns["Ngay_Vao"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Ngay_Vao"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.ddMMyyyy;
            this.MainGridView.Columns["Ngay_Ra"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Ngay_Ra"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.ddMMyyyy;

            this.MainGridView.Columns["Ngay_Sinh"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Ngay_Sinh"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.ddMMyyyy;

            this.MainGridView.Columns["Thang_CBac"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_CBac"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Thang_CVu"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_CVu"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Ngay_VDang"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Ngay_VDang"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Ngay_CDCT"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Ngay_CDCT"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Thang_Doan"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_Doan"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Thang_CM"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_CM"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Thang_BC"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_BC"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Thang_NNgu"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_NNgu"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Thang_XNgu"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_XNgu"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Thang_TNgu"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_TNgu"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Ngay_Vao"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Ngay_Vao"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

            this.MainGridView.Columns["Ngay_Ra"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Ngay_Ra"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.ddMMyyyy;

            this.MainGridView.Columns["Thang_NL"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            this.MainGridView.Columns["Thang_NL"].DisplayFormat.FormatString = MyConst.FORMAT_DATETIME.MMyyyy;

        }

        //Kiểm tra xem user đang đăng nhập có quyền xem, thêm, sửa, xóa hay không?
        //Nếu false có nghĩa là không có bất cứu quyền gì.
        private bool Permision()
        {
            try
            {


                return true;
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
                return false;
            }
        }

        //Nơi tải dữ liệu danh mục lên các control để lựa chọn: ví dụ: Combobox, listbox ...
        private void BindDataToControl()
        {
            try
            {

            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }


        /// <summary>
        /// Nơi tải dữ liệu lên grid chứa dữ liệu. Điều kiện truyền vào có thể trắng hoặc từ bộ lọc 
        /// </summary>
        /// <param name="dieukien"></param>
        /// <param name="arrParameter">truyền vào có thể null hoặc ko có phần tử nào</param>
        private void BindDataToGrid(string dieukien, List<SqlParameter> arrParameter)
        {
            try
            {
                string sql = "Select AutoID, DauMoiID, DauMoi_ID, Khoa, So_Hieu_SQ, So_Hieu_QN, HoTen_KS, BiDanh, " +
                            "dbo.GetTuDienNCap('" + MyConst.TD.BoPhan.Ma + "',CB.Don_Vi_CT,CB.DauMoiID) As TenDon_Vi_CT, " +
                            "dbo.GetTuDien('" + MyConst.TD.Chuc.Ma + "',CB.Chuc_Vu,CB.DauMoiID) As TenChuc_Vu, " +
                            "CB.Ngay_Sinh,   " +
                            "dbo.GetTuDien('" + MyConst.TD.Chuc.Ma + "',CB.Chuc_Vu,CB.DauMoiID) As TenChuc_Vu,   " +
                            "Gioi_Tinh, Dan_Toc_T,  Ton_Giao_T, dbo.GetDauMoi(CB.DauMoiID) As TenDauMoi,  " +
                            "dbo.GetUser(CB.UserID, CB.DauMoi_ID) As CapNhatCuoi, CreateDate, UpdateDate  " +
                            ", Ho " +
                            ", Dem   " +
                            ", Ten   " +
                            ", Ten_Khac   " +
                            ", dbo.GetTuDien('" + MyConst.TD.Cap.Ma + "',CB.Cap_Bac,CB.DauMoiID)  As TenCap_Bac  " +
                            ", Thang_CBac " + //AsN'Tháng Cấp bậc' "+
                            ", Lan_NLuong " + //As N'Lần nâng lương' "+
                            ", HeSoLuong " + //As N'Hệ số lương' "+
                            ", Bac_Luong " + //As N'Bậc lương' "+
                            ", Muc_Luong " + //As N'Mức lương' "+ 
                            ",Thang_NL " + //As N'Tháng nâng lương' "+ 
                            ", Thang_CVu " + //As N'Tháng chức vụ' "+
                            ", Chuc_Kiem " + //As N'Chức kiêm'  "+
                            ", dbo.GetTuDien('" + MyConst.TD.Khoi_CT.Ma + "',CB.Khoi_CTac,CB.DauMoiID)  As TenKhoi_CT  " +
                            ", dbo.GetTuDien('" + MyConst.TD.BinhC.Ma + "',CB.Binh_Chung,CB.DauMoiID) As TenBinh_Chung  " +
                            ", dbo.GetTuDien('" + MyConst.TD.Ng_CNCT.Ma + "',CB.Nganh_CTac,CB.DauMoiID) As TenNganh_CTac " +
                            ", dbo.GetTuDien('" + MyConst.TD.LoaiCB.Ma + "',CB.Loai_CBo,CB.DauMoiID) As TenLoai_CBo  " +
                            ", dbo.GetTuDien('" + MyConst.TD.VanHoa.Ma + "',CB.Van_Hoa,CB.DauMoiID) As TenVan_Hoa  " +
                            ", CHQL " + //As N'Trình độ CHQL' "+
                            ", LLCT " + //As N'Trình độ LLCT' "+
                            ", CMNV " + //As N'Trình độ CMNV' "+
                            ", dbo.GetTuDien('" + MyConst.TD.HocHam.Ma + "',CB.HocHam,CB.DauMoiID) As TenHocHam  " +
                            ", dbo.GetTuDien('" + MyConst.TD.HocVi.Ma + "',CB.HocVi,CB.DauMoiID) As TenHocVi  " +
                            ", dbo.GetTuDien('" + MyConst.TD.Nguon.Ma + "',CB.Nguon_VDN,CB.DauMoiID) As TenNguon_VDN " +
                            ", Gia_Dinh_T " + //As N'TP Gia đình' "+
                            ", Ban_Than_T " + //As N'TP Bản thân' "+
                            ",Ngay_VDang " + //As N'Ngày vào đảng' "+
                            ", Ngay_CDCT " + //As N'Ngày vào đảng chính thức' "+
                            ", CVu_Dang_T " + //As N'Chức vụ đảng' "+
                            ", CVu_DThe_T " + //As N'Chức vụ đoàn thể' "+
                            ", Thang_Doan " + //As N'Tháng vào đoàn' "+
                            ", Thang_CM " + //As N'Tháng cách mạng' "+
                            ", Thang_BC " + //As N'Tháng biên chế' "+
                            ", Thang_NNgu " + //As N'Tháng nhập ngũ' "+
                            ", Thang_XNgu " + //As N'Tháng xuất ngũ' "+
                            ", Thang_TNgu " + //As N'Tháng tái ngũ' "+
                            ", dbo.GetTuDien('" + MyConst.TD.Que.Ma + "',CB.NQuan_HT,CB.DauMoiID) As TenNQuan_HT  " +
                            ", NQuan_XP " + //As N'Nguyên quán Xã Phường' "+
                            ", dbo.GetTuDien('" + MyConst.TD.Que.Ma + "',CB.TQuan_HT,CB.DauMoiID) As TenTQuan_HT  " +
                            ", TQuan_XP " + //As N'Trú quán Xã Phường' "+
                            ", Loai_No_T " + //As N'Loại nhà ở' "+
                            ", DTich_No " + //As N'Diện tích nhà ở' "+
                            ", Nguon_Go_T " + //As N'Nguồn gốc nhà ở' "+
                            ", Dia_Chi " + //As N'Địa chỉ' "+
                            ", dbo.GetTuDien('" + MyConst.TD.SucK.Ma + "',CB.Loai_SKhoe,CB.DauMoiID) As TenLoai_SKhoe   " +
                            ", Benh_Chi_T " + //As N'Bệnh chính' "+
                            ", Thuong_T_T " + //As N'Thương tật' "+
                            ", dbo.GetTuDien('" + MyConst.TD.SuDung.Ma + "',CB.Huong_SD,CB.DauMoiID) As TenHuong_SD  " +
                            ", dbo.GetTuDien('" + MyConst.TD.LDo_Tang.Ma + "',CB.Ly_Do_Vao,CB.DauMoiID) As TenLy_Do_Vao   " +
                            ", dbo.GetTuDien('" + MyConst.TD.LDo_Giam.Ma + "',CB.Ly_Do_Ra,CB.DauMoiID) As TenLy_Do_Ra    " +
                            ", Ngay_Vao " + //As N'Ngày vào' "+
                            ", Ngay_Ra " + //As N'Ngày ra'     "+
                            ", Deleted " + //As N'Đã xóa hay chưa' "+
                            ", ChuyenRa " + //As N'Đã chuyển ra hay chưa' "+    
                            "From tblCanBo CB   " +
                            " Where (DauMoiID='" + SelectedDauMoiID + "' ";

                if (chkCaCapDuoi.Checked)
                {
                    string sCapTren = SqlHelper.ExecuteScalar(CommandType.Text, "Select CapTren From tblDau_Moi Where ID='" + SelectedDauMoiID + "' ").ToString();
                    sql += " Or DauMoiID In (Select ID From tblDau_Moi Where CapTren Like '%" + sCapTren + "%' ) ";
                }
                sql += ") ";

                if (cboTrangThaiCanBo.SelectedIndex == 0)//Cán bộ đang công tác
                    sql += " And CB.Deleted<>1 And CB.ChuyenRa <>1 ";
                else if (cboTrangThaiCanBo.SelectedIndex == 1)//Cán bộ đã chuyển ra
                    sql += " And CB.Deleted<>1 And CB.ChuyenRa =1 ";
                else//Cán bộ đã xóa
                    sql += " And CB.Deleted=1 ";
                sql += dieukien;

                if (arrParameter != null && arrParameter.Count > 0)
                    dgData.DataSource = SqlHelper.ExecuteDataTable(CommandType.Text, sql, arrParameter);
                else
                    dgData.DataSource = SqlHelper.ExecuteDataTable(CommandType.Text, sql);

            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        private void btnThemMoi_Click(object sender, EventArgs e)
        {
            try
            {
                DanhMuc.frmCanBoUpdate ff = new DanhMuc.frmCanBoUpdate();
                ff.SelectedDauMoiID = SelectedDauMoiID;
                ff.Action = MyConst.ACTION.Insert;
                ff.ShowDialog();
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        private void btnSuaDoi_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgData.MainView.RowCount == 0)
                {
                    ShowInfoMessage("Không có dữ liệu để sửa thông tin");
                    return;
                }
                frmCanBoUpdate ff = new frmCanBoUpdate();
                ff.SelectedDauMoiID = GetString(dgData, "DauMoiID");
                ff.SelectedKhoa = GetString(dgData, "Khoa");
                ff.Action = MyConst.ACTION.Update;

                ff.ShowDialog();


            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }



        private void btnXoaBo_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgData.MainView.RowCount == 0)
                {
                    ShowInfoMessage("Không có dữ liệu để xóa");
                    return;
                }
                else
                {
                    if (ShowConfirmMessage("Bạn có chắc chắn xóa?") == DialogResult.No)
                        return;

                    string sql = "Update tblCanBo Set Deleted=1, SynCode=1 " +
                        "Where Khoa=@Khoa And DauMoiID='" + GetString(dgData, "DauMoiID") + "' ";
                    List<SqlParameter> arrParameters = new List<SqlParameter>();
                    arrParameters.Add(SqlHelper.CreateParameterObject("@Khoa", SqlDbType.NVarChar, ParameterDirection.Input, GetString(dgData, "Khoa")));
                    SqlHelper.ExecuteNonQuery(CommandType.Text, sql, arrParameters);
                }

                MyCommon.ShowMessage("Xóa thành công");

                BindDataToGrid("", null);


                Action = MyConst.ACTION.Insert;
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            try
            {
                this.DialogResult = DialogResult.Cancel;
                this.Close();
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        private void txtTenCanBoFind_EditValueChanged(object sender, EventArgs e)
        {
            try
            {

                string sql = "1=1 ";
                if (!IsNull(txtSoHieu_SQFind))
                {
                    string[] arrConditionFind = txtSoHieu_SQFind.Text.Trim().Split(',');
                    for (int i = 0; i < arrConditionFind.Length; i++)// 
                    {
                        sql += "And (So_Hieu_SQ Like '%" + arrConditionFind[i] + "%' Or So_Hieu_QN Like '%" + arrConditionFind[i] + "%') ";
                    }
                }
                if (!IsNull(txtTenCanBoFind))
                {
                    string[] arrConditionFind = txtTenCanBoFind.Text.Trim().Split(',');
                    for (int i = 0; i < arrConditionFind.Length; i++)// 
                    {
                        sql += "And  HoTen_KS Like '%" + arrConditionFind[i] + "%' ";
                    }
                }

                ((DataTable)dgData.DataSource).DefaultView.RowFilter = sql;
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        private void txtTenDTFind_KeyDown(object sender, KeyEventArgs e)
        {
            try
            {
                if (e.KeyCode == Keys.Down)
                    dgData.Focus();
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        private void btnChapNhan_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgData.MainView.RowCount == 0)
                {
                    ShowInfoMessage("Không có kết quả nào được tìm thấy");
                    return;
                }

                if (IsFormFind)
                {
                    this.SelectedKhoa = GetString(dgData, "Khoa");
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        //Nếu phím là enter và Action=Find thì có nghĩa là chấp nhận kết quả tìm kiếm.
        private void dgData_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnChapNhan_Click(null, null);
            }
        }

        private void menuThemMoi_Click(object sender, EventArgs e)
        {
            if (btnThemMoi.Enabled)
                btnThemMoi_Click(null, null);
        }

        private void menuSuaDoi_Click(object sender, EventArgs e)
        {
            if (btnSuaDoi.Enabled)
                btnSuaDoi_Click(null, null);
        }


        private void menuXoaBo_Click(object sender, EventArgs e)
        {
            if (btnXoaBo.Enabled)
                btnXoaBo_Click(null, null);
        }

        private void menuTimKiem_Click(object sender, EventArgs e)
        {
            ResetValues(gTimKiemThongTin);
            txtTenCanBoFind.Focus();
        }

        private void menuChapNhan_Click(object sender, EventArgs e)
        {
            btnChapNhan_Click(null, null);
        }

        private void btnXuatExcel_Click(object sender, EventArgs e)
        {
            try
            {
                ExportToExcel(dgData);
            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }


        private void btnMoRong_Click(object sender, EventArgs e)
        {
            gCapNhatThongTin.Visible = !gCapNhatThongTin.Visible;
        }


        private void txtLienHe_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter && !e.Control)
            {
                e.Handled = true;
                btnTaiLai.Focus();
            }
        }

        private void dgData_DoubleClick(object sender, EventArgs e)
        {
            btnChapNhan_Click(null, null);
        }

        private void mởRộngToolStripMenuItem_Click(object sender, EventArgs e)
        {
            btnMoRong_Click(null, null);
        }

        private void picImage_DoubleClick(object sender, EventArgs e)
        {
            frmViewImage.Instance.MdiParent = frmMain.Instance;

            frmViewImage.Instance.Show();
            frmViewImage.Instance.Activate();

        }
        /// <summary>
        /// Hàm gán text thể hiện người dùng đang làm việc với danh mục của đơn vị nào
        /// Trước khi gọi hàm này thì bạn phải xác định và gán trước giá trị cho biến SelectedDauMoiID
        /// </summary>
        private void MySetCurentDauMoi()
        {
            try
            {
                gTimKiemThongTin.Text = "Tìm kiếm F3 - Đơn vị hiện tại: " + SqlHelper.ExecuteScalar(CommandType.Text, "Select TenDV From tblDau_Moi Where ID = " + SelectedDauMoiID);
            }
            catch (Exception _ex)
            {
                gTimKiemThongTin.Text = "Tìm kiếm F3 - Đơn vị hiện tại: Không xác định";
                MyCommon.ShowMessage(_ex.Message);
            }
        }
        private void btnChonDonVi_Click(object sender, EventArgs e)
        {
            if (DanhMuc.frmDauMoiList.InstanceFind.ShowDialog() == DialogResult.OK)
            {
                this.SelectedDauMoiID = DanhMuc.frmDauMoiList.InstanceFind.SelectedID;
                MySetCurentDauMoi();
                Permision();
                BindDataToGrid("", null);
            }
        }

        private void btnTaiLai_Click(object sender, EventArgs e)
        {
            BindDataToGrid("", null);
        }

        private void btnInHoSo_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgData.MainView.RowCount == 0)
                {
                    ShowInfoMessage("Không có dữ liệu để in hồ sơ");
                    return;
                }

                MyCommon.InHoSo(GetString(dgData, "Khoa"), GetString(dgData, "DauMoiID"));


            }
            catch (Exception _ex)
            {
                ShowErrorMessage(_ex);
            }
        }

        private void btnTimKiemNangCao_Click(object sender, EventArgs e)
        {

            frmCanBoFilter ff = new frmCanBoFilter();
            if (ff.ShowDialog() == DialogResult.OK)
            {
                BindDataToGrid(ff.ConditionString, ff.arrParam);
            }
        }

        private void cboTrangThaiCanBo_SelectedIndexChanged(object sender, EventArgs e)
        {
            BindDataToGrid("", null);
        }

        private void menuChuyenThanhCanBoDangCongTac_Click(object sender, EventArgs e)
        {
            if (cboTrangThaiCanBo.SelectedIndex == 0)
            {
                MyCommon.ShowMessage("Chức năng này chỉ hoạt động trong danh sách cán bộ đã xóa hoặc dã chuyển ra.");
                return;
            }
            else
            {
                string sql = "Update tblCanBo Set Deleted=0, ChuyenRa=0, Ngay_Ra=null, Ly_Do_Ra=null, SynCode=1, UserID=@UserID, DauMoi_ID=@DauMoi_ID, UpdateDate=GetDate() Where DauMoiID=@DauMoiID And Khoa=@Khoa ";

                List<SqlParameter> arrParametersCanBo = new List<SqlParameter>();
                arrParametersCanBo.Add(SqlHelper.CreateParameterObject("@DauMoiID", SqlDbType.Int, ParameterDirection.Input, GetString(dgData, "DauMoiID")));
                arrParametersCanBo.Add(SqlHelper.CreateParameterObject("@Khoa", SqlDbType.NVarChar, ParameterDirection.Input, GetString(dgData, "Khoa")));
                arrParametersCanBo.Add(SqlHelper.CreateParameterObject("@UserID", SqlDbType.Int, ParameterDirection.Input, MyCommon.CurrentUserID));
                arrParametersCanBo.Add(SqlHelper.CreateParameterObject("@DauMoi_ID", SqlDbType.Int, ParameterDirection.Input, MyCommon.CurrentUserDauMoiID));
                SqlHelper.ExecuteNonQuery(CommandType.Text, sql, arrParametersCanBo);
                MyCommon.ShowMessage("Thực hiện xong");
                BindDataToGrid("", null);
            }
        }

        private void dgData_Paint(object sender, PaintEventArgs e)
        {
            lblTongSo.Text = "Tổng số: " + MainGridView.RowCount;
        }





    }
}